/*
 * Copyright (c) 2012 Tomas Shestakov. <http://code.google.com/p/jmmo/>
 */

package jmmo.engine.multifacetedactor

import akka.actor.ActorRef

sealed trait ChildrenRequest extends Serializable

case class AddChildRequest(child: ActorRef) extends ChildrenRequest

case class RemoveChildRequest(child: ActorRef) extends ChildrenRequest

case object GetChildrenRequest extends ChildrenRequest

case class GetChildrenResponse(children: Iterable[ActorRef])


sealed trait ParentEvent extends Serializable

/**
 *
 * @param parent
 */
case class AddedToParent(parent: ActorRef) extends ParentEvent

/**
 *
 * @param parent
 */
case class RemovedFromParent(parent: ActorRef) extends ParentEvent


sealed trait ChildEvent extends Serializable

/**
 *
 * @param child
 */
case class ChildAdded(child: ActorRef) extends ChildEvent

/**
 *
 * @param child
 */
case class ChildRemoved(child: ActorRef) extends ChildEvent
